/**
 * swagger生成ts文件
 */
const axios = require("axios");
const { translate } = require("./translation");
const fs = require("fs").promises;
const { to, haveChinaStr } = require("./utils");
const {
  dataBaseTypeDict,
  generatorInterfaceFile,
} = require("./generatorInterfaceFile");
const { generatorApiTsFile } = require("./generatorApiTsFile");
const config = require("./config");
// 每个api对应一个文件夹
const { api } = config;

async function main() {
  const { data } = await axios.get(api);
  // 所有interface（后端的PO）组成的对象
  const { schemas } = data.components;
  // 接口地址 和 描述
  const { url, description } = data.servers[0];
  // 所有接口路径组成的对象
  const paths = data.paths;
  // 所有controller的名字和描述 组成的数组
  const tags = data.tags;
  // api地址的信息
  const { title: DocName } = data.info;

  // 生成文件夹
  await to(fs.mkdir(DocName));

  // 生成interface文件
  await generatorInterfaceFile(schemas, DocName, api);
  // 生成api文件
  await generatorApiTsFile(tags, paths, DocName);
}

main();
